iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
自我挑戰組

iOS Junior的菜雞之路系列 第 2

不想等待Storyboard轉圈圈就來看看

  • 分享至 

  • xImage
  •  

用程式建立App

說明

今天的主題會是用程式建立App
在此時此刻,同樣使用Xcode 13的夥伴們,使用Xcode建立一個全新的專案,建立畫面無非是使用StoryBoard 跟 SwiftUI來建立畫面,但是這次我想要用使用程式搭配Xib來建立我的App畫面,我會在下面說明為什麼我要這麼選擇。

使用Storyboard建立:
優點:

  • 快速
  • 可視化UI變動
  • 可以清楚地觀察各個View之間的跳轉關係(如果每個都用Storyboard去拉跳轉的話

缺點:

  • 在多人合作的時候,如果共同改動同一份Storyboard的話,那麼Storyboard文件就會造成Merge Conflict的問題,那麼如果要解Merge Conflict會花的時間可能會比你全部都自己從頭拉還要來的多上許多。
  • 如果面對比較大的專案,Storyboard畫面呈現的時候,會需要花上更多時間去Loading(常常會面臨轉圈圈的尷尬局面

使用程式建立:
優點:

  • 能夠快速找到修改的位置

缺點:

  • 麻煩,因為每個跳轉都要寫上一段Code
  • 沒那麼直觀,只能用想像的去想像下一個View的畫面

使用SwiftUI:
優點:

  • 快速
  • 可視化
  • 單一個View就一份檔案

缺點:

  • 因為SwiftUI還算是很新的模式,所以對API的提供都還有很大的修改空間,如果要將這個作為長期穩定版的話,會需要考慮一下
  • 主要還是我不會用

使用程式建立App需要先做的背景設定

  1. 刪除Target中的Main
  2. 刪除Info文件的StoryboardName
  3. 刪除Main.storyboard
  4. 修改SceneDelegate
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let _ = (scene as? UIWindowScene) else { return }

        guard let windowSence = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowSence.coordinateSpace.bounds)
        window?.windowScene = windowSence

        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }

今天就先這樣,畢竟背景設定很容易被人家跳過,但是其實如果想從教學文中從頭開始學都會遇到這個問題,所以這邊就作為一個開頭,讓大家有個好開始。

參考網站

https://blog.51cto.com/u_15069441/4521318


上一篇
鐵人賽頭一天,先說目標 Day1
下一篇
架構不會,亂七八遭(MVVM上)
系列文
iOS Junior的菜雞之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言